package main

import "fmt"

//语法格式和方法非常类似
/*
type interface_name/接口名称 interface {
	method_name/方法名称 {return_type}/返回类型
}*/

// 定义接口,具有共性的方法定义在一起,
/*
1.接口名：用type将接口自定义的一个类型名。Go语言的接口名单词后面通常会加 er，比如写操作的接口叫 Writer 等。
接口名要尽量突出接口类型的含义。
2.方法名：当方法名的首字母以及该接口名首字母都是大写时，那么这个方法可以被接口所在的包（package）之外的代码访问。
3.参数列表、返回值列表：参数列表和返回值列表中的参数变量名可省略。*/

type Usber interface {
	read()
	write()
}
type Computer struct {
	name string
}

type Mobile struct {
	name string
}

func (c Computer) read() {
	fmt.Println(c.name + "电脑读")
}

func (c Computer) write() {
	fmt.Println(c.name + "电脑写")
}

func (m Mobile) read() {
	fmt.Println(m.name + "手机读")
}

func (m Mobile) write() {
	fmt.Println(m.name + "手机写")
}
func main() {
	c := Computer{name: "小米"} //实例化结构体
	c.read()
	c.write()

	m := Mobile{name: "iphone"} //实例化结构体
	m.read()
	m.write()
}
